home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / linux / atari / source / source.lzh / atari-linux-0.01pl3 / drivers / char / kbd_kern.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-11  |  2.8 KB  |  108 lines

  1. #ifndef _KBD_KERN_H
  2. #define _KBD_KERN_H
  3.  
  4. #include <linux/interrupt.h>
  5. #define set_leds() mark_bh(KEYBOARD_BH)
  6.  
  7. #include <linux/keyboard.h>
  8.  
  9. /*
  10.  * kbd->xxx contains the VC-local things (flag settings etc..)
  11.  *
  12.  * Note: externally visible are LED_SCR, LED_NUM, LED_CAP defined in kd.h
  13.  *       The code in KDGETLED / KDSETLED depends on the internal and
  14.  *       external order being the same.
  15.  *
  16.  * Note: lockstate is used as index in the array key_map.
  17.  */
  18. struct kbd_struct {
  19.         unsigned char ledstate;        /* 3 bits */
  20.     unsigned char default_ledstate;
  21. #define VC_SCROLLOCK    0    /* scroll-lock mode */
  22. #define VC_NUMLOCK    1    /* numeric lock mode */
  23. #define VC_CAPSLOCK    2    /* capslock mode */
  24.  
  25.     unsigned char lockstate;    /* 4 bits - must be in 0..15 */
  26. #define VC_SHIFTLOCK    KG_SHIFT    /* shift lock mode */
  27. #define VC_ALTGRLOCK    KG_ALTGR    /* altgr lock mode */
  28. #define VC_CTRLLOCK    KG_CTRL     /* control lock mode */
  29. #define VC_ALTLOCK    KG_ALT      /* alt lock mode */
  30.  
  31.     unsigned char modeflags;
  32. #define VC_APPLIC    0    /* application key mode */
  33. #define VC_CKMODE    1    /* cursor key mode */
  34. #define VC_REPEAT    2    /* keyboard repeat */
  35. #define VC_CRLF        3    /* 0 - enter sends CR, 1 - enter sends CRLF */
  36. #define VC_META        4    /* 0 - meta, 1 - meta=prefix with ESC */
  37. #define VC_PAUSE    5    /* pause key pressed - unused */
  38. #define VC_RAW        6    /* raw (scancode) mode */
  39. #define VC_MEDIUMRAW    7    /* medium raw (keycode) mode */
  40. };
  41.  
  42. extern struct kbd_struct kbd_table[];
  43.  
  44.  
  45. extern unsigned long kbd_init(unsigned long);
  46.  
  47. static inline int vc_kbd_led(struct kbd_struct * kbd, int flag)
  48. {
  49.     return ((kbd->ledstate >> flag) & 1);
  50. }
  51.  
  52. static inline int vc_kbd_lock(struct kbd_struct * kbd, int flag)
  53. {
  54.     return ((kbd->lockstate >> flag) & 1);
  55. }
  56.  
  57. static inline int vc_kbd_mode(struct kbd_struct * kbd, int flag)
  58. {
  59.     return ((kbd->modeflags >> flag) & 1);
  60. }
  61.  
  62. static inline void set_vc_kbd_led(struct kbd_struct * kbd, int flag)
  63. {
  64.     kbd->ledstate |= 1 << flag;
  65. }
  66.  
  67. static inline void set_vc_kbd_lock(struct kbd_struct * kbd, int flag)
  68. {
  69.     kbd->lockstate |= 1 << flag;
  70. }
  71.  
  72. static inline void set_vc_kbd_mode(struct kbd_struct * kbd, int flag)
  73. {
  74.     kbd->modeflags |= 1 << flag;
  75. }
  76.  
  77. static inline void clr_vc_kbd_led(struct kbd_struct * kbd, int flag)
  78. {
  79.     kbd->ledstate &= ~(1 << flag);
  80. }
  81.  
  82. static inline void clr_vc_kbd_lock(struct kbd_struct * kbd, int flag)
  83. {
  84.     kbd->lockstate &= ~(1 << flag);
  85. }
  86.  
  87. static inline void clr_vc_kbd_mode(struct kbd_struct * kbd, int flag)
  88. {
  89.     kbd->modeflags &= ~(1 << flag);
  90. }
  91.  
  92. static inline void chg_vc_kbd_led(struct kbd_struct * kbd, int flag)
  93. {
  94.     kbd->ledstate ^= 1 << flag;
  95. }
  96.  
  97. static inline void chg_vc_kbd_lock(struct kbd_struct * kbd, int flag)
  98. {
  99.     kbd->lockstate ^= 1 << flag;
  100. }
  101.  
  102. static inline void chg_vc_kbd_mode(struct kbd_struct * kbd, int flag)
  103. {
  104.     kbd->modeflags ^= 1 << flag;
  105. }
  106.  
  107. #endif
  108.